#pragma once

#include <vector>
#include <string>

#include <d3d11.h>
#include <DirectXMath.h>

#include "IComponent.h"

#include "Texture.h"

using namespace std;
using namespace DirectX;

class Material : public virtual IComponent
{
public:
	Material(void);
	~Material(void);

	virtual void Initialize(HWND WindowHandle = nullptr, HINSTANCE hInstance = nullptr, ID3D11Device* Device = nullptr, ID3D11DeviceContext* DeviceContext = nullptr);
	virtual void Update(int DeltaTime);
	virtual void Shutdown();

	void AddDiffuseTexture(string Path);
	void SetColor(XMFLOAT4 Color);
	XMFLOAT4 GetColor();
	bool hasColor();
private:
	ID3D11Device* D3DDevice;
	ID3D11DeviceContext* D3DDeviceContext;

	Texture DiffuseTextures;

	XMFLOAT4 mColor;
	bool mhasColor;
};

